As used herein, a digital image comprises an 20 orthogonal array of pixels, i.e. rows of pixels extending in two mutually perpendicular directions over a 2D field and conventionally referred to as horizontal rows and vertical columns of pixels. However, such terminology is used herein for convenience and does not imply any particular orientation of the image.
In digital image processing a kernel is a subset of a matrix of elements arranged in orthogonal rows and columns. In the matrix each element may have a value of zero or a positive or negative non-zero number. The non-zero matrix elements form the kernel itself. The zero elements take no part in the processing. Conventionally, to process a digital image comprising orthogonal rows and columns of pixels, the kernel is stepped from one pixel to the next along successive rows of the image (actually the image pixels could be processed in any order, but it is easier to conceptualise pixel by pixel processing along successive rows). At each position of the kernel relative to the image each kernel element is notionally aligned with a respective corresponding image pixel; i.e. the kernel defines a set of image pixels having the same shape as the kernel. At each such position of the kernel the value of each image pixel is multiplied by the value of the corresponding element of the kernel, the individual multiplication products are summed, and the sum (if necessary after normalisation) replaces the existing value of the current target pixel. The target pixel is a pixel bearing a fixed relationship to the kernel. In a bi-symmetrical kernel the target pixel is usually the pixel currently corresponding to the centre element of the kernel, but it need not be and may be outside the kernel. See http://williamson-labs.com/convolution-2d.htm. Such processing is known in the art as convolution.
Such processing is of wide applicability and can be used, for example, for edge detection, high and low pass filtering, and simulating optical blurring. However, the standard technique as described above is computationally intensive when operating on large images with big kernels. For example, to process an image W pixels wide by H pixels high using a K×K kernel takes O(W×H×K×K) operations, where O=the order of.
WO2007/095477 (Ref: FN-140) discloses blurring an image based on acquiring two images of nominally a same scene taken at a different light exposure levels. Typically, a foreground region of one of the images includes pixels having saturated intensity values. For at least one of the saturated pixels, values are extrapolated from the other image. At least a portion of a third image is blurred and re-scaled including pixels having the extrapolated values.
US2014/0192233 discloses causing a primary exposure and an effects exposure of a scene to be captured via a digital imaging sensor. During at least the effects exposure, the scene is shifted in a predetermined pattern relative to the digital imaging sensor via an image stabilizing device. The effects exposure and the primary exposure are then combined to form a digital image.